RUN, Xtatic, RUN: EFFICIENT IMPLEMENTATION OF AN OBJECT-ORIENTED LANGUAGE WITH REGULAR PATTERN MATCHING
نویسندگان
چکیده
RUN, Xtatic, RUN: EFFICIENT IMPLEMENTATION OF AN OBJECT-ORIENTED LANGUAGE WITH REGULAR PATTERN MATCHING Michael Y. Levin Benjamin C. Pierce Schema languages such as DTD, XML Schema, and Relax NG have been steadily growing in importance in the XML community. A schema language provides a mechanism for defining the type of XML documents; i.e., the set of constraints that specify the structure of XML documents that are acceptable as data for a certain programming task. A number of recent language designs—many of them descended from the XDuce language of Hosoya, Pierce, and Vouillon—have showed how such schemas can be used statically for typechecking XML processing code and dynamically for evaluation of XML structures. The technical foundation of such languages is the notion of regular types, a mild generalization of nondeterministic top-down tree automata, which correspond to a core of most popular schema notations, and the notion of regular patterns—regular types decorated with variable binders—a powerful and convenient primitive for dynamic inspection of XML values. This dissertation is concerned with one of XDuce’s descendants, Xtatic. The goal of the Xtatic project is to bring the regular type and regular pattern technologies to a wide audience by integrating them with a mainstream object-oriented language. My research focuses on an efficient implementation of Xtatic including a compiler that generates fast and compact target programs and a run-time system that is designed to support efficient manipulation of XML fragments. Many techniques described here are applicable not only to Xtatic but also to other XDuce derivatives such as CDuce and Cω.
منابع مشابه
XML Goes Native: Run-Time Representations for Xtatic
Xtatic is an extension of C with native support for statically typed XML processing. It features XML trees as built-in values, “tree grep” pattern matching, and an XML-specific type system. An implementation ofXtatic must address a number of issues common to any language supporting a declarative style of XML processing (e.g., XQuery, XSLT, XDuce, CDuce, Xact, Xen, etc.). In particular, it must ...
متن کاملThe XTATIC Experience
XTATIC is a lightweight extension of C# with native support for statically typed XML processing. It features XML trees as built-in values, a refined type system based on regular types in the style of XDUCE, and "tree grep"-style regular patterns for traversing and manipulating XML. Previous papers on XTATIC have reported results on a number of specific technical issues: basic theoretical proper...
متن کاملMatching and Uniication for the Object-oriented Symbolic Computation System
Term matching has become one of the most important primitive operations for symbolic computation. This paper describes the extension of the object-oriented symbolic computation system AlgBench with pattern matching and uniication facilities. The various pattern objects are organized in subclasses of the class of the composite expressions. This leads to a clear design and to a distributed implem...
متن کاملModeling and Evaluation of Stochastic Discrete-Event Systems with RayLang Formalism
In recent years, formal methods have been used as an important tool for performance evaluation and verification of a wide range of systems. In the view points of engineers and practitioners, however, there are still some major difficulties in using formal methods. In this paper, we introduce a new formal modeling language to fill the gaps between object-oriented programming languages (OOPLs) us...
متن کاملModeling and Evaluation of Stochastic Discrete-Event Systems with RayLang Formalism
In recent years, formal methods have been used as an important tool for performance evaluation and verification of a wide range of systems. In the view points of engineers and practitioners, however, there are still some major difficulties in using formal methods. In this paper, we introduce a new formal modeling language to fill the gaps between object-oriented programming languages (OOPLs) us...
متن کامل